home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / QuakeTools / docs / ripped / quakeutils.txt < prev    next >
Text File  |  1998-04-29  |  8KB  |  202 lines

  1.  
  2. This is the readme from our most recent licensed developer CD.  Not all of it is
  3. applicable to this source upload, because the map editor, source data, and game
  4. source code have not been made freely available (gotta have some reason to
  5. charge lots of $$$ for it...), but it is the best documentation I have.
  6.  
  7. -- John Carmack
  8.  
  9.  
  10.  
  11.  
  12. Quake Development CD 9/4/96
  13. ---------------------------
  14.  
  15. Included is all of the source data and utilities necessary to generate all of
  16. the data distributed with quake, and the main executable itself.  You can modify
  17. the data in place, or copy the data you wish to modify to an addon directory and
  18. work from there.
  19.  
  20. The win-32 tools have not been extensively tested yet, because we still do most
  21. of our work on unix.
  22.  
  23.  
  24. Completely building Quake code and data:
  25. ---------------------------------------
  26.  
  27. This process can take quite some time on a slow machine.  I am omiting the steps
  28. to rebuild all the maps, otherwise it would take all day (literally).
  29.  
  30. Install VC++ and MASM.  You don't need MASM if you are going to use DJGPP to
  31. compile the dos version instead of using the windows version.
  32.  
  33. Copy the contents of the quake development cd to /quake on any drive.  The
  34. directory MUST be called "quake", because that string is searched for by the
  35. utilities to provide compatability between unix directories mounted inside a
  36. tree, and windows directories mounted on a drive letter.  You can move it off of
  37. root, but it will require changes in a few batch files.
  38.  
  39. Add drive:\quake\bin_nt to your path.
  40.  
  41. cd \quake\utils
  42. install            // compiles all of the utilities and copies them to \quake\bin_nt
  43.  
  44. cd \quake\id1\gfx
  45. foreach %i in (*.ls) do qlumpy %i    // regrab all 2d graphics
  46. // gfx.ls    : graphics that are statically loaded: the small font, status bar stuff, etc
  47. // cached.ls    : graphics that are dynamically cached: menus, console background, etc
  48. // the other .ls files are texture paletes for map editing
  49.  
  50. cd \quake\id1\progs
  51. sprgen sprites.qc    // regrab the sprites used in the 3d world (all three of them)
  52.  
  53. foreach %i in (*.qc) do modelgen %i    // regrab all 3d models
  54. // many of the .qc files do not actually specify a model, but
  55. // running them through modelgen is harmless
  56.  
  57. qcc            // rebuild progs.dat and files.dat
  58.  
  59. qfiles -bspmodels    // reads files.dat and runs qbsp and light on all external
  60.             // brush models (health boxes, ammo boxes, etc)
  61. qfiles -pak 0        // builds \quake\id1\pak0.pak
  62. qfiles -pak 1        // builds \quake\id1\pak1.pak
  63. // note that you should not leave the pak files in your development directory, because
  64. // you won't be able to override any of the contents.  If you are doing your work
  65. // in an add-on directory, it isn't a problem, and the pak files will load faster
  66. // than the discrete files.
  67.  
  68. cd \quake\code
  69. mw            // a batch file that compiles the windows version of quake
  70. q +map newmap        // a batch file that runs "quake -basedir \quake +map newmap"
  71.  
  72.  
  73.  
  74.  
  75. the bsp tools
  76. -------------
  77.  
  78. The bsp tools are usually run straight from the map editor, but they can also be
  79. called from the command line.
  80.  
  81. cd \quake\id1\maps
  82. qbsp dm1        // processes dm1.map into dm1.bsp
  83. light dm1        // generates lightmaps for dm1.bsp.  If you run "light -extra dm1", it will make smoother shadow
  84.             // edges by oversampling.
  85. vis dm1            // generates a potentially visible set (PVS) structure for dm1.bsp.  This will only work if
  86.             // the map is leak-free.  You can run "vis -fast dm1" to generate a rough PVS without
  87.             // spending very much time.
  88. bspinfo newmap        // dumps the stats on newmap
  89.  
  90. QuakeEd
  91. -------
  92. You are not expected to be able to figure out how to use QuakeEd from the
  93. (nonexistant) documentation we have.  You get one full day with one of our map
  94. designers for tutoring.
  95.  
  96. If you want to try it out anyway:
  97.  
  98. cd \quake\id1        // the directory that contains the quake.qe3 project file
  99. qe3            // see quakeed.txt for a box-room walkthrough
  100.  
  101. QuakeEd is still undergoing development.  The version included in bin_nt is a
  102. newer version than the source included in utils.  I don't have the current
  103. source here right now.
  104.  
  105. Expect new versions over the next few weeks.
  106.  
  107.  
  108. The main source code:
  109. --------------------
  110. You can use the djgpp compiler (http://www.delorie.com) to rebuild quake for
  111. dos.  We used a cross-compiler built for our Digital Unix alpha system that
  112. works very rapidly, but the dos hosted compiler is quite slow.
  113.  
  114. Our reccomended procedure is to forget about dos and just work with the windows
  115. version for code changes.
  116.  
  117. Currently at id we compile for three different platforms:  NEXTSTEP, dos, and
  118. windows.  The code also compiles for linux, but that is not part of our regular
  119. process.  The C code is totally portable, but the assembly code was writen for
  120. GAS, which was unfreindly for windows development.  Michael wrote a GAS to MASM
  121. translator to allow the assembly code to compile under windows.  We still
  122. consider the GAS code (.s) to be the master, and derive the masm (.asm) code
  123. from it inside the makefile.  If you are never going to touch the assembly code
  124. (we don't reccoment you do), or you are willing to take full responsibility for
  125. it, you can throw out the .s files and just use the .asm.
  126.  
  127. The direct-sound driver is not very good right now.  You may want to run with
  128. "-nosound".
  129.  
  130.  
  131. The utilities source:
  132. --------------------
  133.  
  134. Each utility has a seperate directory of code with a VC++ project file.  They
  135. all share several code files in the "common" directory.  The NT versions of
  136. these utilities have not been very extensively tested, as we still use DEC Unix
  137. for most of our work (soon to change).  The two source files you are most likely
  138. to change are:  common/lbmlib.c to load a more common graphics format, like pcx,
  139. and common/trilib.c to load a 3D format other than Alias object seperated
  140. triangles.
  141.  
  142.  
  143. qe3 :  The map editor.  Designed for use on open GL accelerated systems such as
  144. intergraph or glint-TX based systems, but it will still run on the basic NT
  145. software version.  REQUIRES A 3-BUTTON MOUSE!
  146.  
  147. qbsp / light / vis :  these utilities are called directly from the map editor to
  148. process .map files into .bsp files.  They can be executed by hand if desired.
  149.  
  150. bspinfo :  a command line utility that will dump the count and size statistics
  151. on a .bsp file.
  152.  
  153. qlumpy :  the 2-D graphics grabber.  Grabs graphics off of .lbm pictures.  Used
  154. for grabbing the 2d graphics used by quake (status bar stuff, fonts, etc), and
  155. also used for grabbing the textures to be viewed in qe3 and extracted by qbsp.
  156. Qlumpy script files have the default extension ".ls" (LumpyScript).
  157.  
  158. qcc :  the Quake-C compiler.  Reads "progs.src", then compiles all of the files
  159. listed there.  Generates "progs.dat" for use by quake at runtime, "progdefs.h"
  160. for use at compile time, and "files.dat" to be used as input for qfiles.exe.
  161.  
  162. qfiles :  Builds pak files based on the contents of "files.dat" writen out by
  163. qcc.  It can also regenerate all of the .bsp models used in a project, which is
  164. required if any changes to the file format have been made.
  165.  
  166. sprgen :  the sprite model grabber.  Grabs 2d graphics and creates a .spr file.
  167.  
  168. modelgen :  the 3-D model grabber.  Combines skin graphics with 3d frames to
  169. produce a .mdl file.  The commands are parsed out of .qc files that can also be
  170. read by qcc, so a single source can both generate and use the data.
  171.  
  172. texmake :  creates 2d wireframe outlines of a 3d model that can be drawn on to
  173. give a texture to a model.  This is only done once per model, or when the base
  174. frame changes.
  175. Example:
  176. cd \quake\id1\models\torch
  177. texmake base        // reads base.tri and creates the graphic base.lbm
  178. copy base.lbm skin.lbm    // never work on the base skin, it might get overwritten
  179. cd \quake\id1\progs
  180. modelgen torch.qc    // creates torch.mdl out of files in \quake\id1\models\torch
  181.  
  182.  
  183.  
  184. Continuing development work at id:
  185. ------------------------------
  186. winquake :  work is still being done on the direct-X drivers for quake.
  187.  
  188. qe3 :  the NT editor does not yet have full functionality for texture
  189. positioning and entity connecting.
  190.  
  191. qrad :  a radiosity replacement for light.exe.  Instead of placing light
  192. entities, certain textures automatically become light emiters.  The light
  193. bounces off of surfaces, so a single light panel can light all sides of a room.
  194.  
  195. qcsg / qbsp / qwrite :  qbsp.exe is being broken up into multiple programs to
  196. reduce memory usage and provide a better means for experimentation.  It should
  197. get faster, as well.
  198.  
  199. visx :  a faster replacement for vis.
  200.  
  201.  
  202.